package com.niit.session22;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collector;
import java.util.stream.Collectors;

public class StreamDemo {
	public static void main(String[] args) {
//		创建一个集合，存储1到100的值，使用Stream API将集合中的偶数筛选出来并且对每个偶数乘以2，最后收集成一个新的集合。

		List<Integer> list = new ArrayList<Integer>();
		for (int i = 1; i <= 100; i++) {
			list.add(i);
		}
		/******************************* 普通的实现********************************************/
		List<Integer> evenList = new ArrayList<Integer>();
		for (Integer i : list) {
			if (i % 2 == 0) {
				evenList.add(i * 2);
			}
		}
		for (Integer integer : evenList) {
			System.out.println(integer);
		}
		/*******************************Stream API实现********************************************/
//		stream()方法可以把一个集合转换为一个流
//		filter()方法可以对流里面的元素进行筛选
//		map()可以对流里的元素进行映射操作
//		collect()把流里面的元素收集成一个新的集合
		List<Integer> collect = list
				.stream()
				.filter(i -> i % 2 == 0)
				.map(i-> i*2)
				.collect(Collectors.toList());
//		使用forEach()遍历集合，这是Java遍历集合最简单的方法
		collect.forEach(System.out::println);
	}

}
